DataParallel and DistributedDataParallel are ways of leveraging multiple GPUs (and multiple machines for Distributed) to train faster. Pretty practical!
As for your error, what is the type of features? I suspect torch.stack will try to use the first dimension of your ensemble of features, which apparently has shape [10, X, 2048, 2, 4], for stacking. Thus your error at dimension 1, because of the varying sizes. If features is not a list, try to convert it into a list, and torch.stack should work by specifying dim=0 (default).