Explain the difference between multiprocessing and multithreading in Python, and when you would use each for data processing tasks.