The documentation for VTKHDF seems to suggest that the following code:
import h5py
import numpy as np
with h5py.File("wtf.hdf",'w') as hdffile:
        # write support data
        vtkhdf_group = hdffile.create_group("VTKHDF")
        vtkhdf_group.attrs.create("Version", [1, 0])
        vtkhdf_group.attrs.create("Type",np.string_("ImageData"))
        whole_extent = (0, 3, 0, 1, 0, 0)
        vtkhdf_group.attrs.create("WholeExtent", whole_extent)
        vtkhdf_group.attrs.create("Origin", (0.0, 0.0, 0.0))
        vtkhdf_group.attrs.create("Spacing", (1.0, 1.0, 1.0))
        vtkhdf_group.attrs.create("Direction", (1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0))
        # create the pointdata group and the dataset inside it
        field_data_group = vtkhdf_group.create_group("PointData")
        field_data_group.attrs.create('Scalars', ["D1","D2"],) ## Doesn't work
        dset1 = field_data_group.create_dataset('D1',dtype=np.uint8,shape=(2,4))
        dset1[:, :] = np.reshape([0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0],(2, 4))
        dset2 = field_data_group.create_dataset('D2',dtype=np.uint8,shape=(2,4))
        dset2[:, :] = np.reshape([7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0],(2, 4))
would generate a valid file with two PointData datasets, but when viewing is attempted in Paraview 5.1.1 it crashes. This is just to confirm I am reading the limited documentation correctly.