Don't follow this blog post advice. Manually dealing with threads and processes is useful if you want to build a framework or a very complex workflow. But chances are you just want to run stuff concurrently, in the background. In that case (which is most people case), you really want to use one of the stdlib pools: it takes care of sync, serialization, communication with queues, worker life cycle, task distribution,…
I often remember useful standard libraries that I hear about by name, after using them once, but this is a long one.
Alternatively - is this an example in the python readthedocs yet? I try to fall back to that when possible, so my code stays simple for others.