join() waits for the process to complete. When you have a sequence like:
p = Process(target=self.Parse)
p.start()
p.join()
The parent program waits for the child to complete so you don't have active children at the point you make the check. You'd be better off just calling the functions instead of spawning children because you just wait for them to complete anyway. Its common for code like this to put Process objects in a list, do other work, and come back and join them later when the work is done.
You can add some debug code that tracks what's been called to verify that your child code is running:
import time
with open('/tmp/trace.txt', 'a') as fp:
fp.write(time.asctime() + '\n')
Its a good idea in general to add some logging to the processes you spawn so that you can track things like python exceptions in your code.