Private and polynomial time algorithms for learning Gaussians and beyond