Have you tried to increase the file limit as suggested in the error message?
In parse_file you are opening a file, yielding from it, and closing it once all samples were returned. Using multiple workers would thus open multiple files and your current system limit might be set to a small value.