The 24-year-old joins the Iron after leaving Scottish Premier League side Ross County, where he made 34 appearances after signing in January 2019.
A former Hearts and Rangers youth, he joined Dunfermline Athletic in 2012 and started to become involved in their first team in the 2013-14 season.
Spence made 45 appearances during his stay there, and also enjoyed a couple of loan stints at Brechin City.
In June 2017, he joined Scottish Premiership club Dundee, where he linked upon again with his former Dunfermline coach Neil McCann.
After impressing, he signed a further deal there and made 38 appearances during his year-and-a-half there. His move to Ross followed.
Overall, he has made 136 career first team appearances and scored on five occasions.
The move is subject to international clearance.