I have applied the default torch.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8) to my models (TailorNet) then saved it using torch.save(model.state_dict() as usual.
Loading the model again with multiprocessing via ProcessPoolExecutor produces the error below. Somehow using ThreadPoolExecutor works fine.
Error message:
Traceback (most recent call last):
  File "/usr/lib/python3.8/concurrent/futures/process.py", line 368, in _queue_management_worker
    result_item = result_reader.recv()
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 251, in recv
    return _ForkingPickler.loads(buf.getbuffer())
  File "/home/osboxes/.local/lib/python3.8/site-packages/torch/multiprocessing/reductions.py", line 88, in rebuild_tensor
    t = torch._utils._rebuild_tensor(storage, storage_offset, size, stride)
  File "/home/osboxes/.local/lib/python3.8/site-packages/torch/_utils.py", line 133, in _rebuild_tensor
    t = torch.tensor([], dtype=storage.dtype, device=storage.device)

RuntimeError: Could not run 'aten::empty.memory_format' with arguments from the 'QuantizedCPU' backend.
This could be because the operator doesn't exist for this backend, or was omitted during the selective/custom build process (if using custom build). If you are a Facebook employee using PyTorch on mobile, please visit https://fburl.com/ptmfixes for possible resolutions. 'aten::empty.memory_format' is only available for these backends: [CPU, CUDA, MkldnnCPU, SparseCPU, SparseCUDA, BackendSelect, Named, AutogradOther, AutogradCPU, AutogradCUDA, AutogradXLA, AutogradNestedTensor, UNKNOWN_TENSOR_TYPE_ID, AutogradPrivateUse1, AutogradPrivateUse2, AutogradPrivateUse3, Tracer, Autocast, Batched, VmapMode].

How I collect the models:
for t in concurrent.futures.as_completed(futures):
    runner, num = t.result()