Machine learning with data assimilation and uncertainty quantification for dynamical systems: a review