Effectively, what you are asking, is how to take advantage of a multicore architecture without parallelizing code yourself. There are no ideal solutions for that, most likely, you will have to parallelize the code yourself manually; otherwise, you are bound to use a single core.
Nevertheless, there are a couple of things one can take advantage of:
- If your algorithm happens to use other modules that already do the parallelization on their own, you might have to simply ensure the parallelization is used.
- Look into some now-available semi-automatic parallelization modules, like Pydron.
- Look into some area-specific automatic parallelization modules, similar to AutoParallel.
- Consider automatic parallelization with @jit using Numba. Numba is pretty powerful but may require you to rewrite a lot of your existing code.
In conclusion, there is stuff to explore, but there is no such thing as turning multiple cores into a more efficient single core.