Error while processing Punctuation module
State: closed | Pull request: no

**Environment overview (please complete the following information)**

Installed Nemo using pip

**Environment details**
- OS version Windows 10
- PyTorch version 1.7.0+cu101
- Python version 3.6
This is the error I am getting while running the voice_swap demo in my machine.


> NotImplementedError                       Traceback (most recent call last)
> 
> <ipython-input-4-51c966b428c7> in <module>
>       7 
>       8 # Add capitalization and punctuation
> ----> 9 res = punctuation.add_punctuation_capitalization(queries=[raw_text])
>      10 text = res[0]
>      11 print(f'\nRaw recognized text: {raw_text}. \nText with capitalization and punctuation: {text}')
> 
> E:\FaceFirst_Projects\NeMo-main\nemo\collections\nlp\models\token_classification\punctuation_capitalization_model.py in add_punctuation_capitalization(self, queries, batch_size)
>     390             all_capit_preds = []
>     391 
> --> 392             for batch in infer_datalayer:
>     393                 input_ids, input_type_ids, input_mask, subtokens_mask = batch
>     394 
> 
> c:\python36\lib\site-packages\torch\utils\data\dataloader.py in __iter__(self)
>     350             return self._iterator
>     351         else:
> --> 352             return self._get_iterator()
>     353 
>     354     @property
> 
> c:\python36\lib\site-packages\torch\utils\data\dataloader.py in _get_iterator(self)
>     292             return _SingleProcessDataLoaderIter(self)
>     293         else:
> --> 294             return _MultiProcessingDataLoaderIter(self)
>     295 
>     296     @property
> 
> c:\python36\lib\site-packages\torch\utils\data\dataloader.py in __init__(self, loader)
>     799             #     before it starts, and __del__ tries to join but will get:
>     800             #     AssertionError: can only join a started process.
> --> 801             w.start()
>     802             self._index_queues.append(index_queue)
>     803             self._workers.append(w)
> 
> c:\python36\lib\multiprocessing\process.py in start(self)
>     103                'daemonic processes are not allowed to have children'
>     104         _cleanup()
> --> 105         self._popen = self._Popen(self)
>     106         self._sentinel = self._popen.sentinel
>     107         # Avoid a refcycle if the target function holds an indirect
> 
> c:\python36\lib\multiprocessing\context.py in _Popen(process_obj)
>     221     @staticmethod
>     222     def _Popen(process_obj):
> --> 223         return _default_context.get_context().Process._Popen(process_obj)
>     224 
>     225 class DefaultContext(BaseContext):
> 
> c:\python36\lib\multiprocessing\context.py in _Popen(process_obj)
>     320         def _Popen(process_obj):
>     321             from .popen_spawn_win32 import Popen
> --> 322             return Popen(process_obj)
>     323 
>     324     class SpawnContext(BaseContext):
> 
> c:\python36\lib\multiprocessing\popen_spawn_win32.py in __init__(self, process_obj)
>      63             try:
>      64                 reduction.dump(prep_data, to_child)
> ---> 65                 reduction.dump(process_obj, to_child)
>      66             finally:
>      67                 set_spawning_popen(None)
> 
> c:\python36\lib\multiprocessing\reduction.py in dump(obj, file, protocol)
>      58 def dump(obj, file, protocol=None):
>      59     '''Replacement for pickle.dump() using ForkingPickler.'''
> ---> 60     ForkingPickler(file, protocol).dump(obj)
>      61 
>      62 #
> 
> NotImplementedError: object proxy must define __reduce_ex__()

Any idea why this error??

I am also encountering this problem. Tried setting num_workers=0 in _setup_infer_dataloader method of nemo/collections/nlp/models/token_classification/punctuation_capitalization_model.py, but it did not solve problem.

We don’t support Windows at this point, please try running in Colab `https://colab.research.google.com/github/NVIDIA/NeMo/blob/r1.0.0rc1/tutorials/NeMo_voice_swap_app.ipynb`

@ekmb I don't know if you're still interested, but I actually ended up fixing this problem by changing `DEFAULT_PROTOCOL` in torch/serialization.py to 4 followed by changing all `num_workers` to 0 in punctuation_capitalization_model.py