If you are using a single GPU, these approaches should yield the same results.
However, wrapping the model in an nn.DataParallel will also use the .module attribute for the original model:
model = nn.Linear(1, 1)
print(model)
> Linear(in_features=1, out_features=1, bias=True)
model = nn.DataParallel(model, device_ids=[0])
print(model)
> DataParallel(
  (module): Linear(in_features=1, out_features=1, bias=True)
)

Do you see any unexpected behavior?