OBJ to parallel VTP files

I am attempting to split up a high res mesh into 4 parts for parallel rendering in paraview on a cluster of 4 GPUs

My attempt at creating the parallel *.vtp file only resulted in a single portion visible so this leads me to suspect that my obj2vtp script is incorrect.

Is this the correct way to write out parallel vtp files ?

from __future__ import print_function
import sys

if(len(sys.argv) != 3):
  print('Usage: ', sys.argv[0], 'input.obj output.vtp')
  sys.exit()

import vtk
reader = vtk.vtkOBJReader()
reader.SetFileName(sys.argv[1])
reader.Update()
obj = reader.GetOutput()

dicer = vtk.vtkOBBDicer()
dicer.SetInputData(obj)
dicer.SetNumberOfPieces(4)
dicer.SetDiceModeToSpecifiedNumberOfPieces();
dicer.Update();


selector = vtk.vtkThreshold()
selector.SetInputArrayToProcess(0, 0, 0, 0, "vtkOBBDicer_GroupIds")
selector.SetInputConnection(dicer.GetOutputPort())
selector.AllScalarsOff()


geometry = vtk.vtkGeometryFilter()
geometry.SetInputConnection(selector.GetOutputPort())

writer = vtk.vtkXMLPolyDataWriter()
writer.SetInputConnection(geometry.GetOutputPort());
for i in range(dicer.GetNumberOfActualPieces()) :
    pieceName = 'abc_{}.vtp'.format(i+1)
    selector.ThresholdBetween(i, i)
    writer.SetFileName(pieceName)
    writer.Write()