You will need to rewrite accumulate so that it is an iterative process. Here is code from lecture, including accumulate written as a recursive process, that may be helpful.
(define square (lambda (x) (* x x)))
(define (square x) (* x x)) ; No distinction between this and previous line of code
(define 1+ (lambda (x) (+ x 1)))
(define (identity x) x) ; Output the same as input
(define (sum term a next b)
(accumulate + 0 term a next b))
(define (product term a next b)
(accumulate * 1 term a next b))
(define (accumulate combiner id term a next b)
(cond ((> a b) id)
(else (combiner (term a) (accumulate combiner id term (next a) next b)))))
(define (definite-integral f a b)
(let ((EPSILON 1/100000))
(* 1. (* EPSILON (accumulate + 0 f a (lambda (x) (+ x EPSILON)) b)))))