For anyone who might be interested in the future the code is not elegant, but it is functional. I also converted a scale bar to a graphic and I'm updating the text elements on that scale bar.
def returnScale(dfscale):
scalebar = [2,3,4,5,6,10]
dfscale = dfscale/12
dfscale = str(int(dfscale))
dfscaleLen = len(dfscale)
numcheck = int(dfscale[0])
for each in scalebar:
if numcheck < each:
multi = '1'
while dfscaleLen > 1:
multi = multi + '0'
dfscaleLen = dfscaleLen - 1
scalebar = each * int(multi)
dataframescale = scalebar * 12
return scalebar,dataframescale
break
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd)[0]
scalebar,dataframescale = returnScale(df.scale)
scalebarDict = {"scaletextElm1":scalebar,"scaletextElm2":scalebar/2}
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
if elm.name in scalebarDict:
elm.text = scalebarDict[elm.name]
df.scale = dataframescale
arcpy.RefreshActiveView()