Avoiding GCF anti-patterns part 5: How to run background processes correctly in Python