Allow custom scatter function in data parallel
🚀 Feature
Allow custom scatter function to be passed in data parallel module.
Motivation
Is there a way to customize scattering process in data parallel? My use case is that I have sparse tensors represented in COO format and they cannot be stored in a single tensor, but require a list to store. In this way, the built-in scatter cannot split the list properly, it tries to iterate over the list and split each of its item.