First, I agree with Richard that packaging two versions is painful. It's also confusing from the other side. "Install Python. I already have it. No, that's Python2, you need Python3. (O_O)"
Second, I think the earlier we start the better. So there's time to cut leafs and replace old libraries in Python2 with equivalents in Python3, dropping packages, etc. By the time, Python2 is definitely deprecated, most of the work is done and only some details remain.
Third, upgrading packages and changing dependencies is no minor tasks. With time, it can be done silently with testing enough so there are no major issues.
Side question, what is ML?