An accurate and efficient scheme for propagating the time dependent Schrödinger equation